﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel.Channels;
using System.ServiceModel;

namespace PSE.ProcessManager.Common.Gateway
{
    /// <summary>
    /// Representa uma camada de comunicação com processos.
    /// </summary>
    public class ProcessSenderGateway : SenderGateway
    {
        /// <summary>
        /// Id do processo para conexão.
        /// </summary>
        public int ProcessId { get; set; }

        /// <summary>
        /// Nome do processo para conexão
        /// </summary>
        public string ProcessName { get; set; }

        /// <summary>
        /// Endereço do processo para conexão.
        /// </summary>
        public string ProcessAddress
        {
            get { return base.Address; }
            set { base.Address = value; }
        }

        protected override IListenerService CreateProxy(EndpointAddress endpoint)
        {
            return _serviceProxyfactory.GetDuplexChannelProxy(base.UserCredential, base._instanceCallback, endpoint, null, false);
        }
    }
}
